package com.tituaem.operacionesficheros;

import com.tituaem.operacionesBd.Consultas;
import com.tituaem.presentacion.Presentacion;
import com.tituaem.utilityclass.TipoOS;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;


public class Escribir {
    private String presTodasSP="src/todasSP_pre.txt";
    private String presTodas="src/todas_pre.txt";
    private String presFuturas="src/futuras_pre.txt";
    private String presFuturasSP="src/futurasSP_pre.txt";
    private String presMesSP="src/mesSP_pre.txt";
    private String presMes="src/mes_pre.txt";
    private String cronFile=TipoOS.getRutaArchivoCron();
    private String file;
    
    //metodos
    
    public void escribirTodasPresentacionesSP() throws IOException, ClassNotFoundException, SQLException{
        
        FileWriter fichero = null;
        PrintWriter pw = null;
        Consultas c=new Consultas();
        ArrayList<Presentacion> pre=c.obtenerTodasPresentacionesSinPulir();
        fichero = new FileWriter(presTodasSP);
            pw = new PrintWriter(fichero);
 
            for (int i = 0; i < pre.size(); i++){
                pw.println(pre.get(i));
            }
            
            pw.close();
    }
    
    public void escribirTodasPresentaciones() throws IOException, ClassNotFoundException, SQLException{
        FileWriter fichero = null;
        PrintWriter pw = null;
        Consultas c=new Consultas();
        ArrayList<Presentacion> pre=c.obtenerTodasPresentaciones();
        fichero = new FileWriter(presTodas);
            pw = new PrintWriter(fichero);
 
            for (int i = 0; i < pre.size(); i++){
                pw.println(pre.get(i));
            }
            
            pw.close();
    }
    
    public void escribirPresentacionesFuturasSP() throws IOException, ClassNotFoundException, SQLException{
        FileWriter fichero = null;
        PrintWriter pw = null;
        Consultas c=new Consultas();
        ArrayList<Presentacion> pre=c.obtenerPresentacionesFuturasSinPulir();
        fichero = new FileWriter(presFuturasSP);
            pw = new PrintWriter(fichero);
 
            for (int i = 0; i < pre.size(); i++){
                pw.println(pre.get(i));
            }
            
            pw.close();
    }

    public void escribirPresentacionesFuturas() throws IOException, ClassNotFoundException, SQLException{
        FileWriter fichero = null;
        PrintWriter pw = null;
        Consultas c=new Consultas();
        ArrayList<Presentacion> pre=c.obtenerPresentacionesFuturas();
        fichero = new FileWriter(presFuturas);
            pw = new PrintWriter(fichero);
 
            for (int i = 0; i < pre.size(); i++){
                pw.println(pre.get(i));
            }
            
            pw.close();
    }
    
    public void escribirPresentacionesMes() throws ClassNotFoundException, SQLException, IOException{
        FileWriter fichero = null;
        PrintWriter pw = null;
        Consultas c=new Consultas();
        ArrayList<Presentacion> pre=c.obtenerPresentacionesDelMes();
        fichero = new FileWriter(presMes);
            pw = new PrintWriter(fichero);
 
            for (int i = 0; i < pre.size(); i++){
                pw.println(pre.get(i));
            }
            
            pw.close();
    }
    
    public void escribirPresentacionesMesSP() throws ClassNotFoundException, SQLException, IOException{
        FileWriter fichero = null;
        PrintWriter pw = null;
        Consultas c=new Consultas();
        ArrayList<Presentacion> pre=c.obtenerPresentacionesDelMesSinPulir();
        fichero = new FileWriter(presMesSP);
            pw = new PrintWriter(fichero);
 
            for (int i = 0; i < pre.size(); i++){
                pw.println(pre.get(i));
            }
            
            pw.close();
    }
        
    public void escribirPresentaciones(ArrayList<Presentacion> pre) throws IOException{
        FileWriter fichero = null;
        PrintWriter pw = null;
        
        fichero = new FileWriter(presTodas);
            pw = new PrintWriter(fichero);
 
            for (int i = 0; i < pre.size(); i++){
                pw.println(pre.get(i).toString());
            }
            pw.close();
    }
    
    public void escribirArchivoCron(String cron, String tituloTarea, String presentacion) throws IOException{
        File fichero = new File(cronFile);
        if(fichero.exists()){
            //System.out.println("Existe");
            FileWriter fw=new FileWriter(fichero, true);
            PrintWriter pw=new PrintWriter(fw, true);
            pw.println(cron+";"+tituloTarea+";"+presentacion+";");
            escribirAlarma(tituloTarea, presentacion);
            pw.close();
        }
        else{
            //System.out.println("No Existe");
            fichero.createNewFile();
            FileWriter fw=new FileWriter(fichero);
            PrintWriter pw=new PrintWriter(fw);
            pw.println(cron+";"+tituloTarea+";"+presentacion+";");
            escribirAlarma(tituloTarea, presentacion);
            pw.close();
        }
    }    
    
    public void escribirAlarma(String titulo, String presentacion) throws IOException{
        file=TipoOS.getRutaAlarmaBat(titulo);
        File fichero=new File(file);
        FileWriter fw=new FileWriter(fichero, true);
        PrintWriter pw=new PrintWriter(fw, true);
        pw.println("@echo off ");
        pw.println("msg * "+presentacion);
        pw.close();
    }    
    
    //main
   
    public static void main(String[] args) {
        try {
            Escribir e=new Escribir();
            
            
            e.escribirPresentacionesFuturasSP();
            
        } catch (IOException ex) {
            Logger.getLogger(Escribir.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(Escribir.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SQLException ex) {
            Logger.getLogger(Escribir.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}
